﻿using System;

namespace PD.ShP.WorkflowActivities
{
    /// <summary>
    /// Encapsulates workflow task properties.
    /// </summary>
    [Serializable]
    public class TaskProperties
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="TaskProperties"/> class.
        /// </summary>
        public TaskProperties()
        {
            this.TaskId = Guid.NewGuid();
            this.IsTaskCompleted = false;
            this.IsApproved = false;
        }

        /// <summary>
        /// Gets the task id.
        /// </summary>
        public Guid TaskId { get; private set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance is task completed.
        /// </summary>
        /// <value>
        /// <c>true</c> if this instance is task completed; otherwise, <c>false</c>.
        /// </value>
        public bool IsTaskCompleted { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this instance is approved.
        /// </summary>
        /// <value>
        /// <c>true</c> if this instance is approved; otherwise, <c>false</c>.
        /// </value>
        public bool IsApproved { get; set; }

        /// <summary>
        /// Gets or sets the user comment.
        /// </summary>
        /// <value>
        /// The user comment.
        /// </value>
        public string UserComment { get; set; }

        /// <summary>
        /// Gets or sets the user that raised the event.
        /// </summary>
        /// <value>
        /// The user that raised the event.
        /// </value>
        public string Issuer { get; set; }
    }
}
